% 名称：mySSA_Tutorial.m
% 说明：mySSA函数组的说明脚本，用来演示如何使用这组代码进行SSA分析
% 数据输入：
%   mySSA_data.mat
%	    GPP     列向量，16年时间序列
%       GPP_oneyear 列向量，1年时间序列
% 数据输出：无
% 涉及函数：
%   mySSA_decompose()
%   mySSA_chooseRCs()
%   mySSA_compose()
% 作者：sid（cnqdcyq@163.com）
% 时间：2021/8/5
% 版本：
%   ver01：【create】2021/8/5

%% 常量定义区
InputData = 'mySSA_data.mat';
M = 1/2;    % 设定窗口大小，占总序列长度的比例
Fs = 46;	% 取样频率：每年取46次，以年为单位时间。

%% 读取数据与数据预处理
load(InputData);
% 选择用来分析的数据
Input = GPP; % 用16年GPP数据处理
% Input = GPP_oneyear; % 用1年GPP数据处理
WindowLength = M.*length(Input);

%% SSA分解成RCs
[Lambda, RCs, Stand] = mySSA_decompose(Input,WindowLength);

%% 进行频率分析

% 对重建因子解释率的分析
Idlist_chosen = mySSA_chooseRCs(Lambda, RCs,Fs,[0.8,2]);

% 选择重建因子的私有函数，尚未完成。sub_chooseDominantFrequency()
%%

% 进行重建
Output = mySSA_compose(RCs,Stand,Idlist_chosen);

% 将合成的时间序列和原序列进行比较
figure
Time = transpose(1:length(Input));
plot(Time,GPP,":");
hold on
plot(Time,Output);
legend('原时间序列','SSA合成序列')
